void main(List<String> args) {
  // var p = Person("gaolei");
  var p = Person("gaolei", age: 18);
  print(p.age);
}

const temp = 30;

class Person {
  // late String name;
  // late int age;
  // final不可变，一旦初始化赋值，不能再赋值了
  final String name;
  final int age;

  // Person(this.name);

  // Person(this.name) : age = 10 {}

  // 如果创建对象时候，有传入一个age,那么使用age,如果没有传入age,使用默认值
  // flutter 初始化列表的写法，参造源码
  // Person(this.name, {int? age}) : this.age = age ?? 10 {}
  // 源码写的三目运算 
  Person(this.name, {int? age}) : this.age = temp > 20 ? 30 : 50 {}

  // Person(this.name, {this.age = 10});

  //这种写法，只能写默认值，不能写表达式,所以不推荐，需要具体看下是不是这样
  // Person(this.name, {this.age = Colors.blue});
  // Person(this.name, {this.age = 10});
}
